export default {
  // 命名空间
  namespaced: true,
  state: {
    cartList: uni.getStorageSync('cartList')||[]
  },
  getters: {

  },
  mutations: {
  // 给购物车 新增商品元素 payload={value:要添加的商品对象}
  cartAdd(state, payload) {
    // 判断当前商品是否已经存在 
    const index = state.cartList.findIndex(item => item.goods_id === payload.value.goods_id);
    if (index === -1) {
      // 不存在 push新的元素
      // 要自己设置一个购买数量进去   选中状态 
      state.cartList.push({ ...payload.value, nums: 1 ,checked:true});
    } else {
      // 存在
      // 存在 找到它 购买数量 ++
      state.cartList[index].nums++;
    }
     // 存一份到缓存中
    uni.setStorageSync('cartList',state.cartList);


  },
  // 商品的选中 取反功能 payload={index}
    cartGoodsChecked(state, payload) {
      state.cartList[payload.index].checked = !state.cartList[payload.index].checked;
      uni.setStorageSync("cartList", state.cartList);
  },

   // 数量编辑  payload ={unit:1,index}  payload ={unit:-1,index}
   cartGoodsNumUpdate(state,payload){
      state.cartList[payload.index].nums+=payload.unit
         // 存一份到缓存中
     uni.setStorageSync("cartList", state.cartList);
   },

    // 删除数组中的某个元素 根据下标来删除
    cartGoodsRemove(state,payload){
      state.cartList.splice(payload.index,1)
         // 存一份到缓存中
      uni.setStorageSync("cartList", state.cartList);
    },
      // 修改所有商品的选中状态 payload={checked}
      cartAllGoodsChecked(state,payload){
        state.cartList.forEach(item => item.checked=payload.checked);
        uni.setStorageSync('cartList',state.cartList);
      }
  },
  actions: {

  }
}